package com.java.base.exercise.lambda;

/**
 * @Author RenPu
 * @Date 2023/5/24 15:13
 * @Version 1.0
 * @Description: lambda工具类编写
 **/

interface Myinterface{
    void dosomething(String msg);
}


public class LambdaUtils {


    /**
     * 判断是否为true，不为true则抛出异常
     * @param b
     * @return
     */
    public static DealwithSwitchHandler isTrue(boolean b){
        return (errMessage)->{
            if(!b){
                throw new RuntimeException(errMessage);
            }
        };
    }


    /**
     * 根据判断的结果走不同的处理逻辑
     * @param mark
     * @return
     */
    public static BranchHandler isTrueOrFalse(boolean mark){
        return (trueHandler, falseHandler) -> {
            if(mark){
                trueHandler.run();
            }else {
                falseHandler.run();
            }
        };
    }


    public static PresentOrElseHandler persentChoose(String param){
        return (action, runHandler) -> {
            if(null!=param){
                action.accept(param);
            }else {
                runHandler.run();
            }
        };
    }



    public static void main(String[] args) {

//        LambdaUtils.isTrue(false).throwMessage("不满足当前条件！！！！");

//        LambdaUtils.isTrueOrFalse(false).booleanChoose(()->{
//                    System.out.println("开始处理业务1");
//        }
//        ,()->{
//                    System.out.println("开始处理业务2");
//
//                });

//        LambdaUtils.persentChoose("柳神").isPresent(b->{
//            String result=b+"hello Lambda";
//            System.out.println(result);
//        },()->{
//            System.out.println("当前入参数为空值");
//        });

        Myinterface myinterface=s-> System.out.println(s);
        myinterface.dosomething("中国人！！！！");



    }
}
